class Utils {
  constructor() {
    this.baseURL = 'https://code.itndedu.com/pz'
  }
  // 获取用户信息
  getUserInfo() {
    // 调用登录api
    uni.login({
      success: res => {
        this.request({
          url: '/auth/wxLogin',
          // method: 'GET',
          data: {
            code: res.code
          },
          success: res => {
            console.log('登录成功拿到数据', res)
          }
        })
      }
    })
  }
  // 封装request函数
  request(options = {
    showLoading: false
  }) {
    // 判断是否有请求路径
    if (!options.url) return
    // 判断是否调用了加载函数
    if (options.showLoading) {
      this.showLoading()
    }
    uni.request({
      url: this.baseURL + options.url,
      data: options.data ? options.data : {},
      header: options.header ? options.header : {},
      method: options.method ? options.method : 'GET',
      // 这里是http状态码 200
      success: (response) => {
        // 响应数据 关闭加载的特效
        uni.hideLoading()
        // 判断接口http状态码200 但是业务不对
        if (response.data.code !== 10000) {
          // 返回失败的结果
          if (options.fail && typeof options.fail == 'function') {
            options.fail(response)
          }
        } else {
          // 返回成功的结果
          if (options.success && typeof options.success == 'function') {
            options.success(response)
          }
        }
      },
      // 这里是http状态码非200
      fail: (response) => {
        // 关闭加载效果
        uni.hideLoading()
        console.log(response);
      }
    })
  }
  // 创建加载的loading效果
  showLoading() {
    const isShowLoading = uni.getStorageInfoSync('isShowLoading')
    if (isShowLoading) {
      // 如果存在加载中 就把之前的关闭 开始本次的加载效果
      uni.hideLoading()
      uni.setStorageSync('isShowLoading', false)
    }
    uni.showLoading({
      title: '加载中...',
      complete: function () {
        uni.setStorageSync('isShowLoading', true)
      },
      fail: function () {
        uni.setStorageSync('isShowLoading', false)
      }
    })
  }
}
export default new Utils()